Django একটি MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে, যদিও এর বাস্তবায়ন কিছুটা ভিন্ন, যা MVT (Model-View-Template) নামে পরিচিত। Django প্রজেক্ট তৈরি করার পর আপনি একটি নির্দিষ্ট স্ট্রাকচার দেখতে পাবেন। এই স্ট্রাকচারে বিভিন্ন ফোল্ডার এবং ফাইল থাকে, যা প্রজেক্টের বিভিন্ন কাজ পরিচালনা করে।
এখানে আমরা Django প্রজেক্টের স্ট্রাকচার এবং এর প্রতিটি অংশের ব্যাখ্যা দিব।
Django প্রজেক্ট স্ট্রাকচার
ধরা যাক, আপনি myblog নামের একটি Django প্রজেক্ট তৈরি করেছেন। প্রজেক্টটির ডিরেক্টরি স্ট্রাকচার নিচের মতো হতে পারে:
myblog/
manage.py
myblog/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
app_name/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
migrations/
__init__.py
ফাইল এবং ফোল্ডারের ব্যাখ্যা
১. manage.py
manage.py হলো Django প্রজেক্টের ম্যানেজমেন্ট টুল, যা প্রজেক্টের বিভিন্ন কাজ যেমন সার্ভার চালানো, ডাটাবেস মাইগ্রেশন করা, নতুন অ্যাপ তৈরি করা ইত্যাদি করতে ব্যবহৃত হয়।
কিছু কমান্ড উদাহরণ:
python manage.py runserver— সার্ভার চালানো।python manage.py migrate— ডাটাবেস মাইগ্রেশন।python manage.py startapp app_name— নতুন অ্যাপ তৈরি করা।
২. প্রজেক্ট ডিরেক্টরি (যেমন myblog/)
এই ডিরেক্টরিটি আপনার মূল প্রজেক্টের কনফিগারেশন ফাইলগুলোর জন্য ব্যবহৃত হয়। এতে রয়েছে কিছু গুরুত্বপূর্ণ ফাইল:
__init__.py: এটি একটি Python প্যাকেজ নির্দেশক ফাইল। এর মাধ্যমে Django জানতে পারে যে এটি একটি প্যাকেজ।settings.py: এই ফাইলে প্রজেক্টের কনফিগারেশন ও সেটিংস থাকে, যেমন ডাটাবেস কনফিগারেশন, ইনস্টল করা অ্যাপস, মিডিয়া এবং স্ট্যাটিক ফাইল কনফিগারেশন, ল্যাংগুয়েজ সেটিংস ইত্যাদি।urls.py: এখানে URL রাউটিং কনফিগারেশন থাকে। আপনি এখানে URL প্যাটার্ন এবং সেই প্যাটার্নের সাথে সম্পর্কিত ভিউ কনফিগার করেন।asgi.pyএবংwsgi.py: এই ফাইল দুটি অ্যাপ্লিকেশনকে ওয়েব সার্ভারের সাথে কানেক্ট করার জন্য ব্যবহৃত হয়।asgi.pyঅ্যাসিঙ্ক্রোনাস সার্ভারের জন্য, এবংwsgi.pyসাধারণ ওয়েব সার্ভারের জন্য ব্যবহৃত হয়।
৩. অ্যাপ ডিরেক্টরি (যেমন app_name/)
Django প্রজেক্টে একাধিক অ্যাপ থাকতে পারে। প্রতিটি অ্যাপ একটি নির্দিষ্ট কার্যক্রম পরিচালনা করে। উদাহরণস্বরূপ, একটি ব্লগ অ্যাপের জন্য app_name নামের একটি ডিরেক্টরি তৈরি করা হবে। এই ডিরেক্টরির মধ্যে কিছু গুরুত্বপূর্ণ ফাইল থাকে:
__init__.py: এটি একটি প্যাকেজ নির্দেশক ফাইল, যেটি অ্যাপটিকে একটি Python প্যাকেজ হিসেবে চিহ্নিত করে।admin.py: এই ফাইলে আপনি Django Admin প্যানেলে অ্যাপের মডেলগুলো প্রদর্শনের জন্য কাস্টমাইজেশন করতে পারেন। এখানে আপনি অ্যাপের মডেলগুলোকে অ্যাডমিন প্যানেলে যুক্ত করবেন।apps.py: এই ফাইলটি অ্যাপের কনফিগারেশন ফাইল। এখানে অ্যাপের জন্য কিছু কাস্টম কনফিগারেশন দেওয়া যায়।models.py: এখানে আপনি ডাটাবেসের মডেলগুলো তৈরি করবেন। প্রতিটি মডেল একটি ডাটাবেস টেবিলের প্রতিনিধিত্ব করে।tests.py: এখানে আপনি অ্যাপের জন্য ইউনিট টেস্ট বা অন্যান্য ধরনের টেস্ট লিখবেন।views.py: এখানে আপনার ভিউ ফাংশন বা ক্লাস থাকবে, যা HTTP অনুরোধের জন্য রেসপন্স তৈরি করবে।migrations/: এখানে ডাটাবেস মাইগ্রেশন সম্পর্কিত স্ক্রিপ্টগুলো থাকে, যা ডাটাবেসের পরিবর্তন ট্র্যাক এবং প্রয়োগ করে।
৪. migrations/ ফোল্ডার
প্রতিটি অ্যাপের মধ্যে একটি migrations/ ফোল্ডার থাকবে, যেখানে ডাটাবেস মাইগ্রেশন স্ক্রিপ্টগুলো থাকে। যখন আপনি মডেল পরিবর্তন করেন, Django সেই পরিবর্তনগুলিকে ট্র্যাক করে এবং একটি নতুন মাইগ্রেশন স্ক্রিপ্ট তৈরি করে। এই স্ক্রিপ্টগুলো ডাটাবেস আপডেট করতে ব্যবহৃত হয়।
৫. templates/ (অ্যাপ্লিকেশনের জন্য)
যতগুলো অ্যাপ আপনি তৈরি করবেন, প্রতিটি অ্যাপের মধ্যে templates/ ফোল্ডার থাকবে, যেখানে HTML টেমপ্লেটগুলো থাকবে। Django আপনাকে views.py থেকে এই টেমপ্লেটগুলো রেন্ডার করতে দেয়। উদাহরণ:
app_name/
templates/
app_name/
home.html
post_detail.html
৬. static/ (অ্যাপ্লিকেশনের জন্য)
static/ ফোল্ডারে আপনি CSS, JavaScript এবং ইমেজ ফাইলগুলো রাখবেন। Django আপনাকে এই স্ট্যাটিক ফাইলগুলো সহজে সার্ভ করতে সহায়তা করে। উদাহরণ:
app_name/
static/
app_name/
style.css
script.js
সারাংশ
Django প্রজেক্টের স্ট্রাকচার একটি পরিষ্কার এবং সংগঠিত উপায়ে বিভিন্ন ফাইল এবং ফোল্ডারকে আলাদা করে, যা প্রজেক্টের মেইন কাজগুলোর দায়িত্ব পালন করে। প্রজেক্টের মূল ডিরেক্টরি (যেমন myblog/) প্রজেক্টের কনফিগারেশন এবং সেটিংস ধারণ করে, আর প্রতিটি অ্যাপের মধ্যে মডেল, ভিউ, টেমপ্লেট, স্ট্যাটিক ফাইল, অ্যাডমিন প্যানেল কনফিগারেশন থাকে। Django স্ট্রাকচারটি খুবই মডুলার এবং সম্প্রসারণযোগ্য, যার মাধ্যমে আপনি বড় প্রকল্পও সহজে পরিচালনা করতে পারবেন।
Read more